let s:save_cpo = &cpo
set cpo&vim

if !exists('c_no_posix_constant')
  syntax keyword cPosixConstant PTHREAD_BARRIER_SERIAL_THREAD
  syntax keyword cPosixConstant PTHREAD_CANCEL_ASYNCHRONOUS
  syntax keyword cPosixConstant PTHREAD_CANCEL_ENABLE
  syntax keyword cPosixConstant PTHREAD_CANCEL_DEFERRED
  syntax keyword cPosixConstant PTHREAD_CANCEL_DISABLE
  syntax keyword cPosixConstant PTHREAD_CANCELED
  syntax keyword cPosixConstant PTHREAD_CREATE_DETACHED
  syntax keyword cPosixConstant PTHREAD_CREATE_JOINABLE
  syntax keyword cPosixConstant PTHREAD_EXPLICIT_SCHED
  syntax keyword cPosixConstant PTHREAD_INHERIT_SCHED
  syntax keyword cPosixConstant PTHREAD_MUTEX_DEFAULT
  syntax keyword cPosixConstant PTHREAD_MUTEX_ERRORCHECK
  syntax keyword cPosixConstant PTHREAD_MUTEX_NORMAL
  syntax keyword cPosixConstant PTHREAD_MUTEX_RECURSIVE
  syntax keyword cPosixConstant PTHREAD_MUTEX_ROBUST
  syntax keyword cPosixConstant PTHREAD_MUTEX_STALLED
  syntax keyword cPosixConstant PTHREAD_ONCE_INIT
  syntax keyword cPosixConstant PTHREAD_PRIO_INHERIT
  syntax keyword cPosixConstant PTHREAD_PRIO_NONE
  syntax keyword cPosixConstant PTHREAD_PRIO_PROTECT
  syntax keyword cPosixConstant PTHREAD_PROCESS_SHARED
  syntax keyword cPosixConstant PTHREAD_PROCESS_PRIVATE
  syntax keyword cPosixConstant PTHREAD_SCOPE_PROCESS
  syntax keyword cPosixConstant PTHREAD_SCOPE_SYSTEM
  syntax keyword cPosixConstant PTHREAD_COND_INITIALIZER
  syntax keyword cPosixConstant PTHREAD_MUTEX_INITIALIZER
  syntax keyword cPosixConstant PTHREAD_RWLOCK_INITIALIZER
endif

if  !exists('c_no_posix_function')
  syntax keyword cPosixFunction pthread_atfork
  syntax keyword cPosixFunction pthread_attr_destroy
  syntax keyword cPosixFunction pthread_attr_getdetachstate
  syntax keyword cPosixFunction pthread_attr_getguardsize
  syntax keyword cPosixFunction pthread_attr_getinheritsched
  syntax keyword cPosixFunction pthread_attr_getschedparam
  syntax keyword cPosixFunction pthread_attr_getschedpolicy
  syntax keyword cPosixFunction pthread_attr_getscope
  syntax keyword cPosixFunction pthread_attr_getstack
  syntax keyword cPosixFunction pthread_attr_getstacksize
  syntax keyword cPosixFunction pthread_attr_init
  syntax keyword cPosixFunction pthread_attr_setdetachstate
  syntax keyword cPosixFunction pthread_attr_setguardsize
  syntax keyword cPosixFunction pthread_attr_setinheritsched
  syntax keyword cPosixFunction pthread_attr_setschedparam
  syntax keyword cPosixFunction pthread_attr_setschedpolicy
  syntax keyword cPosixFunction pthread_attr_setscope
  syntax keyword cPosixFunction pthread_attr_setstack
  syntax keyword cPosixFunction pthread_attr_setstacksize
  syntax keyword cPosixFunction pthread_barrier_destroy
  syntax keyword cPosixFunction pthread_barrier_init
  syntax keyword cPosixFunction pthread_barrier_wait
  syntax keyword cPosixFunction pthread_barrierattr_destroy
  syntax keyword cPosixFunction pthread_barrierattr_getpshared
  syntax keyword cPosixFunction pthread_barrierattr_init
  syntax keyword cPosixFunction pthread_barrierattr_setpshared
  syntax keyword cPosixFunction pthread_cancel
  syntax keyword cPosixFunction pthread_cleanup_pop
  syntax keyword cPosixFunction pthread_cleanup_push
  syntax keyword cPosixFunction pthread_cond_broadcast
  syntax keyword cPosixFunction pthread_cond_destroy
  syntax keyword cPosixFunction pthread_cond_init
  syntax keyword cPosixFunction pthread_cond_signal
  syntax keyword cPosixFunction pthread_cond_timedwait
  syntax keyword cPosixFunction pthread_cond_wait
  syntax keyword cPosixFunction pthread_condattr_destroy
  syntax keyword cPosixFunction pthread_condattr_getclock
  syntax keyword cPosixFunction pthread_condattr_getpshared
  syntax keyword cPosixFunction pthread_condattr_init
  syntax keyword cPosixFunction pthread_condattr_setclock
  syntax keyword cPosixFunction pthread_condattr_setpshared
  syntax keyword cPosixFunction pthread_create
  syntax keyword cPosixFunction pthread_detach
  syntax keyword cPosixFunction pthread_equal
  syntax keyword cPosixFunction pthread_exit
  syntax keyword cPosixFunction pthread_getconcurrency
  syntax keyword cPosixFunction pthread_getcpuclockid
  syntax keyword cPosixFunction pthread_getschedparam
  syntax keyword cPosixFunction pthread_getspecific
  syntax keyword cPosixFunction pthread_join
  syntax keyword cPosixFunction pthread_key_create
  syntax keyword cPosixFunction pthread_key_delete
  syntax keyword cPosixFunction pthread_mutex_consistent
  syntax keyword cPosixFunction pthread_mutex_destroy
  syntax keyword cPosixFunction pthread_mutex_getprioceiling
  syntax keyword cPosixFunction pthread_mutex_init
  syntax keyword cPosixFunction pthread_mutex_lock
  syntax keyword cPosixFunction pthread_mutex_setprioceiling
  syntax keyword cPosixFunction pthread_mutex_timedlock
  syntax keyword cPosixFunction pthread_mutex_trylock
  syntax keyword cPosixFunction pthread_mutex_unlock
  syntax keyword cPosixFunction pthread_mutexattr_destroy
  syntax keyword cPosixFunction pthread_mutexattr_getprioceiling
  syntax keyword cPosixFunction pthread_mutexattr_getprotocol
  syntax keyword cPosixFunction pthread_mutexattr_getpshared
  syntax keyword cPosixFunction pthread_mutexattr_getrobust
  syntax keyword cPosixFunction pthread_mutexattr_gettype
  syntax keyword cPosixFunction pthread_mutexattr_init
  syntax keyword cPosixFunction pthread_mutexattr_setprioceiling
  syntax keyword cPosixFunction pthread_mutexattr_setprotocol
  syntax keyword cPosixFunction pthread_mutexattr_setpshared
  syntax keyword cPosixFunction pthread_mutexattr_setrobust
  syntax keyword cPosixFunction pthread_mutexattr_settype
  syntax keyword cPosixFunction pthread_once
  syntax keyword cPosixFunction pthread_rwlock_destroy
  syntax keyword cPosixFunction pthread_rwlock_init
  syntax keyword cPosixFunction pthread_rwlock_rdlock
  syntax keyword cPosixFunction pthread_rwlock_timedrdlock
  syntax keyword cPosixFunction pthread_rwlock_timedwrlock
  syntax keyword cPosixFunction pthread_rwlock_tryrdlock
  syntax keyword cPosixFunction pthread_rwlock_trywrlock
  syntax keyword cPosixFunction pthread_rwlock_unlock
  syntax keyword cPosixFunction pthread_rwlock_wrlock
  syntax keyword cPosixFunction pthread_rwlockattr_destroy
  syntax keyword cPosixFunction pthread_rwlockattr_getpshared
  syntax keyword cPosixFunction pthread_rwlockattr_init
  syntax keyword cPosixFunction pthread_rwlockattr_setpshared
  syntax keyword cPosixFunction pthread_self
  syntax keyword cPosixFunction pthread_setcancelstate
  syntax keyword cPosixFunction pthread_setcanceltype
  syntax keyword cPosixFunction pthread_setconcurrency
  syntax keyword cPosixFunction pthread_setschedparam
  syntax keyword cPosixFunction pthread_setschedprio
  syntax keyword cPosixFunction pthread_setspecific
  syntax keyword cPosixFunction pthread_spin_destroy
  syntax keyword cPosixFunction pthread_spin_init
  syntax keyword cPosixFunction pthread_spin_lock
  syntax keyword cPosixFunction pthread_spin_trylock
  syntax keyword cPosixFunction pthread_spin_unlock
  syntax keyword cPosixFunction pthread_testcancel
endif

let &cpo = s:save_cpo
unlet s:save_cpo

